<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="utf-8" lang="utf-8">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>
   Email 类 - CodeIgniter 中文手册|用户手册|用户指南|Wiki文档
  </title>
  <link rel="shortcut icon" href="/user_guide/../images/design/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" media="all" href="/user_guide/userguide.css" />
  <link rel="search" href="/user_guide/../CodeIgniterSearch.xml" type="application/opensearchdescription+xml" title="CodeIgniter 搜索" />
  <link rel="canonical" href="/user_guide/libraries/email.html" />
  <script type="text/javascript" src="/user_guide/nav/nav.js">
  </script>
  <script type="text/javascript" src="/user_guide/nav/prototype.lite.js">
  </script>
  <script type="text/javascript" src="/user_guide/nav/moo.fx.js">
  </script>
  <script type="text/javascript" src="/user_guide/nav/user_guide_menu.js">
  </script>
  <meta name="robots" content="all" />
  <meta name="author" content="ExpressionEngine Dev Team" />
  <meta name="description" content="CodeIgniter 中文手册, CodeIgniter 用户指南, CodeIgniter User Guide, Wiki 文档" />
 </head>
 <body>
  <!-- START NAVIGATION -->
  <div id="nav">
   <div id="nav_inner">
    <script type="text/javascript">
     create_menu('/user_guide/');
    </script>
   </div>
  </div>
  <script type="text/javascript">
   _setNavigation();
  </script>
  <div id="nav2">
   <a name="top">
   </a>
   <a href="javascript:void(0);" onclick="myHeight.toggle();">
    <img src="/user_guide/images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="切换目录" alt="切换目录" />
   </a>
  </div>
  <div id="masthead">
   <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
    <tr>
     <td width="350">
      <h1>
       CodeIgniter 用户指南 版本 2.0.0
      </h1>
     </td>
     
     <td id="breadcrumb_right">
      <a href="/user_guide/toc.html">
       目录页
      </a>
     </td>
    </tr>
   </table>
  </div>
  <!-- END NAVIGATION -->
  <!-- START BREADCRUMB -->
  <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
   <tr>
    <td id="breadcrumb">
     <a href="/" target="_blank">
      CodeIgniter 中国首页
     </a>
     &nbsp;&#8250;&nbsp;
     <a href="/user_guide/toc.html">用户指南目录</a>
     &nbsp;&#8250;&nbsp;Email 类
    </td>
    <td id="searchbox">
     <form method="get" action="http://www.google.com/search" target="google_window">
      <input type="hidden" name="client" value="pub-0176846097796333" />
      <input type="hidden" name="forid" value="1" />
      <input type="hidden" name="ie" value="UTF-8" />
      <input type="hidden" name="oe" value="UTF-8" />
      <input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.org.cn/user_guide/" />
      搜索用户指南&nbsp;
      <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />
      &nbsp;
      <input type="submit" class="submit" name="sa" value="Go" />
     </form>
    </td>
   </tr>
  </table>
  <!-- END BREADCRUMB -->
  <div style="clear:both;text-align:right;padding: 6px 40px 0 0;">
   <a href="http://codeigniter.com/user_guide/libraries/email.html" target="_blank">
    查看原文
   </a>
  </div>
  <!--<br clear="all"  />-->
  <!-- START CONTENT -->
  <div id="content">
   <h1>
    Email 类
   </h1>
   <p>
    CodeIgniter 拥有强大的 Email 类来提供如下的功能：
   </p>
   <ul>
    <li>
     多协议：Mail、Sendmail 和 SMTP
    </li>
    <li>
     多个收件人
    </li>
    <li>
     抄送和密送
    </li>
    <li>
     HTML 或纯文本邮件
    </li>
    <li>
     附件
    </li>
    <li>
     自动换行
    </li>
    <li>
     邮件优先级
    </li>
    <li>
     密送批处理模式，开启时，大邮件列表将被分成小批次密送。
    </li>
    <li>
     Email 调试工具
    </li>
   </ul>
   <h2>
    发送邮件
   </h2>
   <p>
    发送邮件不仅简单，而且可以发送时进行配置或者将参数放到配置文件中。
   </p>
   <p>
    这里是一个发送邮件的标准示例。注意：该示例是假定使用一个
    <a href="../general/controllers.html">
     控制器
    </a>
    来发送邮件。
   </p>
   <code>
    $this-&gt;load-&gt;library('email');
    <br />
    <br />
    $this-&gt;email-&gt;from('your@example.com', 'Your Name');
    <br />
    $this-&gt;email-&gt;to('someone@example.com');
    <br />
    $this-&gt;email-&gt;cc('another@another-example.com');
    <br />
    $this-&gt;email-&gt;bcc('them@their-example.com');
    <br />
    <br />
    $this-&gt;email-&gt;subject('Email Test');
    <br />
    $this-&gt;email-&gt;message('Testing the email class.');
    <br />
    <br />
    $this-&gt;email-&gt;send();
    <br />
    <br />
    echo $this-&gt;email-&gt;print_debugger();
   </code>
   <h2>
    设置 Email 参数
   </h2>
   <p>
    有17个不同的有效参数来提供给你如何定制你发送的电子邮件。您可以在此手动设置，或自动通过你储存在的配置文件中的来设置，描述如下：
   </p>
   <p>
    参数设定通过一系列的参数值去完成电子邮件的
    <dfn>
     initialize
    </dfn>
    功能。这里有一个例子，说明怎样设置一些参数设定：
   </p>
   <code>
    $config['protocol'] = 'sendmail';
    <br />
    $config['mailpath'] = '/usr/sbin/sendmail';
    <br />
    $config['charset'] = 'iso-8859-1';
    <br />
    $config['wordwrap'] = TRUE;
    <br />
    <br />
    $this-&gt;email-&gt;initialize($config);
   </code>
   <p>
    <strong>
     说明:
    </strong>
    大多数参数都有默认值，如果你没有配置这些参数，它们的默认值就会被使用。
   </p>
   <h3>
    在配置文件中设置 Email 参数
   </h3>
   <p>
    如果您不想使用使用上述方法设定参数，您可以把它们放入一个配置文件。创建一个新文件称为
    <var>
     email.php
    </var>
    ，添加
    <var>
     $config
    </var>
    数组在该文件中。然后将该文件保存为
    <var>
     config/email.php
    </var>
    它将自动的被使用。如果您保存了一个参数配置文件，就不需要使用
    <dfn>
     $this-&gt;email-&gt;initialize()
    </dfn>
    函数来初始化参数了
   </p>
   <h2>
    Email 参数
   </h2>
   <p>
    下面是发送电子邮件时可以设置的属性的列表。
   </p>
   <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
    <tr>
     <th>
      参数
     </th>
     <th>
      默认值
     </th>
     <th>
      选项
     </th>
     <th>
      描述
     </th>
    </tr>
    <tr>
     <td class="td">
      <strong>
       useragent
      </strong>
     </td>
     <td class="td">
      CodeIgniter
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      用户代理 "user agent"。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       protocol
      </strong>
     </td>
     <td class="td">
      mail
     </td>
     <td class="td">
      mail, sendmail, or smtp
     </td>
     <td class="td">
      邮件发送协议。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       mailpath
      </strong>
     </td>
     <td class="td">
      /usr/sbin/sendmail
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      服务器上 Sendmail 的实际路径。protocol 为 sendmail 时使用。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       smtp_host
      </strong>
     </td>
     <td class="td">
      无默认值
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      SMTP 服务器地址。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       smtp_user
      </strong>
     </td>
     <td class="td">
      无默认值
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      SMTP 用户账号。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       smtp_pass
      </strong>
     </td>
     <td class="td">
      无默认值
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      SMTP 密码。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       smtp_port
      </strong>
     </td>
     <td class="td">
      25
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      SMTP 端口。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       smtp_timeout
      </strong>
     </td>
     <td class="td">
      5
     </td>
     <td class="td">
      无
     </td>
     <td class="td">
      SMTP 超时设置(单位：秒)。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       wordwrap
      </strong>
     </td>
     <td class="td">
      TRUE
     </td>
     <td class="td">
      TRUE 或 FALSE (布尔值)
     </td>
     <td class="td">
      开启自动换行。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       wrapchars
      </strong>
     </td>
     <td class="td">
      76
     </td>
     <td class="td">
     </td>
     <td class="td">
      自动换行时每行的最大字符数。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       mailtype
      </strong>
     </td>
     <td class="td">
      text
     </td>
     <td class="td">
      text 或 html
     </td>
     <td class="td">
      邮件类型。发送 HTML 邮件比如是完整的网页。请确认网页中是否有相对路径的链接和图片地址，它们在邮件中不能正确显示。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       charset
      </strong>
     </td>
     <td class="td">
      utf-8
     </td>
     <td class="td">
     </td>
     <td class="td">
      字符集(utf-8, iso-8859-1 等)。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       validate
      </strong>
     </td>
     <td class="td">
      FALSE
     </td>
     <td class="td">
      TRUE 或 FALSE (布尔值)
     </td>
     <td class="td">
      是否验证邮件地址。
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       priority
      </strong>
     </td>
     <td class="td">
      3
     </td>
     <td class="td">
      1, 2, 3, 4, 5
     </td>
     <td class="td">
      Email 优先级. 1 = 最高.  5 = 最低.  3 = 正常.
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       crlf
      </strong>
     </td>
     <td class="td">
      \n
     </td>
     <td class="td">
      &quot;\r\n&quot; or &quot;\n&quot; or &quot;\r&quot;
     </td>
     <td class="td">
      换行符. (使用 &quot;\r\n&quot; to 以遵守RFC 822).
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       newline
      </strong>
     </td>
     <td class="td">
      \n
     </td>
     <td class="td">
      "\r\n" or "\n" or &quot;\r&quot;
     </td>
     <td class="td">
      换行符. (使用 &quot;\r\n&quot; to 以遵守RFC 822).
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       bcc_batch_mode
      </strong>
     </td>
     <td class="td">
      FALSE
     </td>
     <td class="td">
      TRUE or FALSE (boolean)
     </td>
     <td class="td">
      启用批量暗送模式.
     </td>
    </tr>
    <tr>
     <td class="td">
      <strong>
       bcc_batch_size
      </strong>
     </td>
     <td class="td">
      200
     </td>
     <td class="td">
      None
     </td>
     <td class="td">
      批量暗送的邮件数.
     </td>
    </tr>
   </table>
   <h2>
    Email 函数参考
   </h2>
   <h3>
    $this-&gt;email-&gt;from()
   </h3>
   <p>
    设置发件人email地址和名称:
   </p>
   <code>
    $this-&gt;email-&gt;from('
    <var>
     you@example.com
    </var>
    ', '
    <var>
     Your Name
    </var>
    ');
   </code>
   <h3>
    $this-&gt;email-&gt;reply_to()
   </h3>
   <p>
    设置邮件回复地址. 如果没有提供这个信息，将会使用"from()"函数中的值. 例如:
   </p>
   <code>
    $this-&gt;email-&gt;reply_to('
    <var>
     you@example.com
    </var>
    ', '
    <var>
     Your Name
    </var>
    ');
   </code>
   <h3>
    $this-&gt;email-&gt;to()
   </h3>
   <p>
    设置收件人email地址(多个). 地址可以是单个、一个以逗号分隔的列表或是一个数组:
   </p>
   <code>
    $this-&gt;email-&gt;to('
    <var>
     someone@example.com
    </var>
    ');
   </code>
   <code>
    $this-&gt;email-&gt;to('
    <var>
     one@example.com
    </var>
    ,
    <var>
     two@example.com
    </var>
    ,
    <var>
     three@example.com
    </var>
    ');
   </code>
   <code>
    $list = array('
    <var>
     one@example.com
    </var>
    ', '
    <var>
     two@example.com
    </var>
    ', '
    <var>
     three@example.com
    </var>
    ');
    <br />
    <br />
    $this-&gt;email-&gt;to(
    <var>
     $list
    </var>
    );
   </code>
   <h3>
    $this-&gt;email-&gt;cc()
   </h3>
   <p>
    设置抄送(Carbon Copy / CC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.
   </p>
   <h3>
    $this-&gt;email-&gt;bcc()
   </h3>
   <p>
    设置暗送(Blind Carbon Copy / BCC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.
   </p>
   <h3>
    $this-&gt;email-&gt;subject()
   </h3>
   <p>
    设置email主题：
   </p>
   <code>
    $this-&gt;email-&gt;subject('
    <var>
     This is my subject
    </var>
    ');
   </code>
   <h3>
    $this-&gt;email-&gt;message()
   </h3>
   <p>
    设置email正文部分：
   </p>
   <code>
    $this-&gt;email-&gt;message('
    <var>
     This is my message
    </var>
    ');
   </code>
   <h3>
    $this-&gt;email-&gt;set_alt_message()
   </h3>
   <p>
    设置可选的邮件EMAIL正文部分:
   </p>
   <code>
    $this-&gt;email-&gt;set_alt_message('
    <var>
     This is the alternative message
    </var>
    ');
   </code>
   <p>
    这是EMAIL可选的一部分，如果你发送带HTML的邮件，这可以用到。它用于当接收邮件都不支持HTML格式时显示给用户的内容。如果你没有设置这部分，CodeIginiter会自动从邮件正文中提取去掉TAGS的部分。
   </p>
   <h3>
    $this-&gt;email-&gt;clear()
   </h3>
   <p>
    将所有EMAIL的变量清空.  这个方法用于当你在循环中发送邮件时，可以在两次循环中重新设置邮件内容。
   </p>
   <code>
    foreach ($list as $name => $address)
    <br />
    &#123;
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;clear();
    <br />
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;to($address);
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;from('your@example.com');
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;subject('Here is your info '.$name);
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;message('Hi '.$name.' Here is the info you requested.');
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;send();
    <br />
    &#125;
   </code>
   <p>
    如果将参数设为TRUE，附件也会被清空:
   </p>
   <code>
    $this-&gt;email-&gt;clear(TRUE);
   </code>
   <h3>
    $this-&gt;email-&gt;send()
   </h3>
   <p>
    发送EMAIL. 根据发送结果，成功返回TRUE,失败返回FALSE。就可以将它用于判断语句:
   </p>
   <code>
    if ( ! $this-&gt;email-&gt;send())
    <br />
    &#123;
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;// Generate error
    <br />
    &#125;
   </code>
   <h3>
    $this-&gt;email-&gt;attach()
   </h3>
   <p>
    添加附件。第一个参数是文件路径/文件名. 注意: 用路径而不是URL。多次使用该函数可以添加多个附件:
   </p>
   <code>
    $this-&gt;email-&gt;attach('/path/to/photo1.jpg');
    <br />
    $this-&gt;email-&gt;attach('/path/to/photo2.jpg');
    <br />
    $this-&gt;email-&gt;attach('/path/to/photo3.jpg');
    <br />
    <br />
    $this-&gt;email-&gt;send();
   </code>
   <h3>
    $this-&gt;email-&gt;print_debugger()
   </h3>
   <p>
    返回包含邮件内容的字符串，包括EMAIL头和EMAIL正文。用于调试。
   </p>
   <h2>
    取消自动换行
   </h2>
   <p>
    如果你启用自动换行(建议遵循 RFC 822)，EMAIL中有一个非常长的链接它将会换行，导致链接不能被收信人直接点击打开。CodeIgniter可以对正文的部分片段避免这种自动换行，比如:
   </p>
   <code>
    The text of your email that
    <br />
    gets wrapped normally.
    <br />
    <br />
    <var>
     &#123;unwrap&#125;
    </var>
    http://example.com/a_long_link_that_should_not_be_wrapped.html
    <var>
     &#123;/unwrap&#125;
    </var>
    <br />
    <br />
    More text that will be
    <br />
    wrapped normally.
   </code>
   <p>
    将你不想自动换行的部分放入:
    <var>
     &#123;unwrap&#125;
    </var>
    <var>
     &#123;/unwrap&#125;
    </var>
    中间
   </p>
   <p>
    &nbsp;
   </p>
   <div id="Contributors">
    翻译贡献者:
498621, Hex, ianyang, imjie, kele_87, larryli, roln, sygb, xjflyttp, xluohome, yinzhili, yygcom
   </div>
   <div id="DocDate">
    最后修改: 2011-03-16 19:39:56
   </div>
  </div>
  <!-- END CONTENT -->
  <div id="footer">
   <p>
    上一个主题:&nbsp;&nbsp;
    <a href="/user_guide/database/index.html">
     数据库类
    </a>
    &nbsp;&nbsp;&middot;&nbsp;&nbsp;
    <a href="#top">
     页首
    </a>
    &nbsp;&middot;&nbsp;&nbsp;
    <a href="/user_guide/toc.html">用户指南目录</a>
    &nbsp;&nbsp;&middot;&nbsp;&nbsp;下一个主题:&nbsp;&nbsp;
    <a href="/user_guide/libraries/encryption.html">
     加密类
    </a>
   </p>
   <p>
    <a href="http://codeigniter.com">
     CodeIgniter
    </a>
    &nbsp;&middot;&nbsp; 版权所有 &#169; 2006-2011 &nbsp;&middot;&nbsp;
    <a href="http://ellislab.com/">
     Ellislab, Inc.
    </a>
   </p>
   <p>
    中文化:
    <a href="">
     CodeIgniter 中国
    </a>
    &nbsp;&middot;&nbsp; 制作: Hex &nbsp;&middot;&nbsp; 版本: 1.20 &nbsp;&middot;&nbsp; 鸣谢: 子非鱼
   </p>
  </div>
  
  <div style="display:none">
   
   <noscript>
    <a href="http://www.51.la/?3289908" target="_blank">
     <img alt="我要啦免费统计" src="http://img.users.51.la/3289908.asp" style="border:none" />
    </a>
   </noscript>
  </div>
 </body>
</html>